namespace CSW.Framework.Common.Binding.ValueTypes
{
    /// <summary>
    /// Bindable Object State (Initial, Dirty).
    /// </summary>
    public enum BindableObjectState
    {
        /// <summary>
        /// The object is in the same state as when it was loaded from the database.
        /// </summary>
        Pristine,

        /// <summary>
        /// The object is in the same state as the last time changes were pushed to its baseline state.
        /// Used for child record editting when the user wishes to "save" their changes but may end
        /// up cancelling changes on the parent record. An object in this state should be saved to
        /// the database if the user saves the parent record.
        /// </summary>
        NotChangedSinceLastPersist,

        /// <summary>
        /// The object has been changed.
        /// </summary>
        Changed
    }
}